package javaes.dados.cliente;

import java.util.List;

import javaes.dados.generico.InsertUpdateDeleteHibernate;
import javaes.dados.generico.ObterRegistros;
import javaes.modelo.Cliente;

public class ClienteDAOHibernate implements ClienteDAO
{

	private ObterRegistros<Cliente> obt;
	
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public ClienteDAOHibernate()
	{
		this.obt = new  ObterRegistros(new Cliente());
	}
	
	@Override
	public void salvar(Cliente cliente) throws Exception 
	{
		try
        {
           InsertUpdateDeleteHibernate.salva(cliente);
        }
        catch(Exception erro)
        {
           throw new Exception(erro.getMessage());
        }
		
	}

	@Override
	public void excluir(Cliente cliente) throws Exception 
	{
		  try
	      {
	          InsertUpdateDeleteHibernate.exclui(cliente);
	      }
	      catch(Exception erro)
	      {
	          throw new Exception(erro.getMessage());
	      }
			
	}

	@Override
	public Cliente buscaPorLogin(String login) throws Exception 
	{
		return 	(Cliente)this.obt.buscar(login, "login");
	}

	@Override
	public Cliente buscaPorTelefone(String telefone) throws Exception 
	{
		return 	(Cliente)this.obt.buscar(telefone, "telefone");
	}

	@Override
	public Cliente buscaPorID(long id) throws Exception 
	{
		return 	(Cliente)this.obt.buscar(id, "numCliente");
	}

	@Override
	public List<Cliente> listar() throws Exception 
	{
		return this.obt.listar();
	}

}
